# -*- coding：utf-8 -*-
"""
@Time:2024-08-1818:48
@Auth:泛彼泊舟
@File:8、反射查询的具体方法.py
@IDE:PyCharm
@模块功能：xxx
"""
"""
可以使用内建函数hasattr（）判断对象是否存在该属性或者方法（所有的属性和方法）
"""
class A:
    o = 888
    def __init__(self):
        self.i = 666

    def a(self):
        print("a方法被调用了")

    def b(self):
        print("b方法被调用了")

    def c(self):
        print("c方法被调用了")

    def d(self):
        print("d方法被调用了")

    @classmethod
    def e(cls):
        print("e方法被调用了")

x = A()
# 使用反射内置函数hasattr()判断对象是否存在该方法或者属性
print(hasattr(x, "a")) # True
print(hasattr(x, "b"))  # True
print(hasattr(x, "e"))  # True
print(hasattr(x, "i"))  # True
print(hasattr(x, "o"))  # True
print(hasattr(x, "m"))  # False

# 删除属性后还能查到吗？
delattr(x, "i")
print(hasattr(x, "i"))      # False
# 被删除的实例属性取获取的时候是不存在的

